package com.huluobo.kotlindemoim1911a2.db

import com.huluobo.kotlindemoim1911a2.extention.toVarargArray
import org.jetbrains.anko.db.MapRowParser
import org.jetbrains.anko.db.insert
import org.jetbrains.anko.db.select

/**
 * Created by lc on 2022/10/27.
 */
class IMDatabase {
    companion object {
        val databaseHelper = DatabaseHelper()
        val instance = IMDatabase()
    }

    //查询所有联系人
    fun getAllContacts(): List<Contact> {
        return databaseHelper.use {
            select(ContactTable.NAME)//查询当前数据库中的NAME表
                .parseList(//将表中的内容转换为一个list
                    object : MapRowParser<Contact> {
                        //这是一个转换的回调
                        override fun parseRow(columns: Map<String, Any?>): Contact {
                            return Contact(columns.toMutableMap())//因为表中是KV结构,所以在bean中可以直接进行赋值
                        }
                    }
                )
        }
    }

    //保存联系人
    fun saveContact(contact: Contact) {
        databaseHelper.use {
            insert(ContactTable.NAME, *contact.map.toVarargArray())
        }
    }

    //删除联系人
    fun deleteAllContacts() {
        databaseHelper.use {
            delete(ContactTable.NAME, null, null)
        }
    }
}